//
// Created by Administrator on 2025/9/9.
//

#ifndef CTEST_TEST10_H
#define CTEST_TEST10_H

#include <utility>
#include <vector>
#include <string>
#include <ostream>
#include <iostream>

class Test10C1 {

public:

//   用于构造方法时表示删除此构造方法默认编译器实现
    Test10C1() = delete;

//    构造方法简写 隐式转化 explicit关键字可以禁止该转化
    Test10C1(int a = 0, int b = 1) {
    }

    std::string age;
};

// 构造方法 隐式转化
void test10Foo4(Test10C1 c);

void test10InsertSort(std::vector<int> v);

void test10TestStatic();

//
int test10Partition(std::vector<int> &v, int left, int right);

void test10QuickSort(std::vector<int> &nums, int left, int right);

namespace Test10NameSpace {

    class Test10C1 {

    private:
        std::string *c;
        mutable int age;

    public:
        void foo1();

        void foo2() const;

        void foo3(int &a);

        void foo4(int *a);
    };
}

typedef struct Test10S1 {
    int age;
    int name;

public:

    void foo1();
} T10S1;


struct Test10S2 : Test10NameSpace::Test10C1 {
    int age;
    char *name;
};


T10S1 test10Foo5();

#endif //CTEST_TEST10_H
